Apparatus and method for encoding digital image data in a lossless manner

ABSTRACT

A method of losslessly compressing and encoding signals representing image information is claimed. A lossy compressed data file and a residual compressed data file are generated. When the lossy compressed data file and the residual compressed data file are combined, a lossless data file that is substantially identical to the original data file is created.

CROSS-REFERENCE TO RELATED APPLICATION

The present Application for patent is a divisional of patent applicationSer. No. 12/181,608, entitled “APPARATUS AND METHOD FOR ENCODING DIGITALIMAGE DATA IN A LOSSLESS MANNER” filed Jun. 29, 2008, pending, which isa continuation of patent application Ser. No. 10/180,828, entitled“APPARATUS AND METHOD FOR ENCODING DIGITAL IMAGE DATA IN A LOSSLESSMANNER” filed Jun. 26, 2002, now U.S. Pat. No. 7,483,581, which claimspriority to Provisional Application No. 60/302,853 entitled “A SYSTEMAND METHOD FOR ENCODING DIGITAL IMAGE AND VIDEO DATA IN A LOSSLESSMANNER FOR ARCHIVAL PURPOSES (LOSSLESS ENCODER)” filed Jul. 2, 2001, allof which are assigned to the assignee hereof and hereby expresslyincorporated by reference herein.

BACKGROUND OF THE INVENTION

I. Field of the Invention

The present invention relates to image processing and compression. Morespecifically, the invention relates lossless encoding of video image andaudio information in the frequency domain.

II. Description of the Related Art

Digital picture processing has a prominent position in the generaldiscipline of digital signal processing. The importance of human visualperception has encouraged tremendous interest and advances in the artand science of digital picture processing. In the field of transmissionand reception of video signals, such as those used for projecting filmsor movies, various improvements are being made to image compressiontechniques. Many of the current and proposed video systems make use ofdigital encoding techniques. Aspects of this field include image coding,image restoration, and image feature selection. Image coding representsthe attempts to transmit pictures of digital communication channels inan efficient manner, making use of as few bits as possible to minimizethe band width required, while at the same time, maintaining distortionswithin certain limits. Image restoration represents efforts to recoverthe true image of the object. The coded image being transmitted over acommunication channel may have been distorted by various factors. Sourceof degradation may have arisen originally in creating the image from theobject. Feature selection refers to the selection of certain attributesof the picture. Such attributes may be required in the recognition,classification, and decision in a wider context.

Digital encoding of video, such as that in digital cinema, is an areathat benefits from improved image compression techniques. Digital imagecompression may be generally classified into two categories: loss-lessand lossy methods. A loss-less image is recovered without any loss ofinformation. A lossy method involves an irrecoverable loss of someinformation, depending upon the compression ratio, the quality of thecompression algorithm, and the implementation of the algorithm.Generally, lossy compression approaches are considered to obtain thecompression ratios desired for a cost-effective digital cinema approach.To achieve digital cinema quality levels, the compression approachshould provide a visually loss-less level of performance. As such,although there is a mathematical loss of information as a result of thecompression process, the image distortion caused by this loss should beimperceptible to a viewer under normal viewing conditions.

Existing digital image compression technologies have been developed forother applications, namely for television systems. Such technologieshave made design compromises appropriate for the intended application,but do not meet the quality requirements needed for cinema presentation.

Digital cinema compression technology should provide the visual qualitythat a moviegoer has previously experienced. Ideally, the visual qualityof digital cinema should attempt to exceed that of a high-qualityrelease print film. At the same time, the compression technique shouldhave high coding efficiency to be practical. As defined herein, codingefficiency refers to the bit rate needed for the compressed imagequality to meet a certain qualitative level. Moreover, the system andcoding technique should have built-in flexibility to accommodatedifferent formats and should be cost effective; that is, a small-sizedand efficient decoder or encoder process.

Many compression techniques available offer significant levels ofcompression, but result in a degradation of the quality of the videosignal. Typically, techniques for transferring compressed informationrequire the compressed information to be transferred at a constant bitrate.

One compression technique capable of offering significant levels ofcompression while preserving the desired level of quality for videosignals utilizes adaptively sized blocks and sub-blocks of encodedDiscrete Cosine Transform (DCT) coefficient data. This technique willhereinafter be referred to as the Adaptive Block Size Discrete CosineTransform (ABSDCT) method. This technique is disclosed in U.S. Pat. No.5,021,891, entitled “Adaptive Block Size Image Compression Method AndSystem,” assigned to the assignee of the present invention andincorporated herein by reference. DCT techniques are also disclosed inU.S. Pat. No. 5,107,345, entitled “Adaptive Block Size Image CompressionMethod And System,” assigned to the assignee of the present inventionand incorporated herein by reference. Further, the use of the ABSDCTtechnique in combination with a Differential Quadtree Transformtechnique is discussed in U.S. Pat. No. 5,452,104, entitled “AdaptiveBlock Size Image Compression Method And System,” also assigned to theassignee of the present invention and incorporated herein by reference.The systems disclosed in these patents utilize what is referred to as“intra-frame” encoding, where each frame of image data is encodedwithout regard to the content of any other frame. Using the ABSDCTtechnique, the achievable data rate may be reduced from around 1.5billion bits per second to approximately 50 million bits per secondwithout discernible degradation of the image quality.

The ABSDCT technique may be used to compress either a black and white ora color image or signal representing the image. The color input signalmay be in a YIQ format, with Y being the luminance, or brightness,sample, and I and Q being the chrominance, or color, samples for each4:4:4 or alternate format. Other known formats such as the YUV,YC_(b)C_(r) or RGB formats may also be used. Because of the low spatialsensitivity of the eye to color, most research has shown that asub-sample of the color components by a factor of four in the horizontaland vertical directions is reasonable. Accordingly, a video signal maybe represented by four luminance samples and two chrominance samples.

Using ABSDCT, a video signal will generally be segmented into blocks ofpixels for processing. For each block, the luminance and chrominancecomponents are passed to a block size assignment element, or a blockinterleaver. For example, a 16×16 (pixel) block may be presented to theblock interleaver, which orders or organizes the image samples withineach 16×16 block to produce blocks and composite sub-blocks of data fordiscrete cosine transform (DCT) analysis. The DCT operator is one methodof converting a time and spatial sampled signal to a frequencyrepresentation of the same signal. By converting to a frequencyrepresentation, the DCT techniques have been shown to allow for veryhigh levels of compression, as quantizers can be designed to takeadvantage of the frequency distribution characteristics of an image. Ina preferred embodiment, one 16×16 DCT is applied to a first ordering,four 8×8 DCTs are applied to a second ordering, 16 4×4 DCTs are appliedto a third ordering, and 64 2×2 DCTs are applied to a fourth ordering.

The DCT operation reduces the spatial redundancy inherent in the videosource. After the DCT is performed, most of the video signal energytends to be concentrated in a few DCT coefficients. An additionaltransform, the Differential Quad-Tree Transform (DQT), may be used toreduce the redundancy among the DCT coefficients.

For the 16×16 block and each sub-block, the DCT coefficient values andthe DQT value (if the DQT is used) are analyzed to determine the numberof bits required to encode the block or sub-block. Then, the block orthe combination of sub-blocks that requires the least number of bits toencode is chosen to represent the image segment. For example, two 8×8sub-blocks, six 4×4 sub-blocks, and eight 2×2 sub-blocks may be chosento represent the image segment.

The chosen block or combination of sub-blocks is then properly arrangedin order into a 16×16 block. The DCT/DQT coefficient values may thenundergo frequency weighting, quantization, and coding (such as variablelength coding) in preparation for transmission. Although the ABSDCTtechnique described above performs remarkably well, it iscomputationally intensive.

Further, although use of the ABSDCT is visually lossless, it issometimes desirable to recover data in the exact manner in which it wasencoded. For example, mastering and archival purposes require tocompress data in such a way as to be able to recover it exactly in itsnative domain.

Traditionally, a lossless compression system for images consists of apredictor, which estimates the value of the current pixel to be encoded.A residual pixel is obtained as the difference between the actual andthe predicted pixel. The residual pixel is then entropy encoded andstored or transmitted. Since the prediction removes pixel correlation,the residual pixels have a reduced dynamic range with a characteristictwo-sided exponential (Laplacian) distribution. Hence the compression.The amount of compression of the residuals depends on both theprediction and subsequent entropy encoding methods. Most commonly usedprediction methods are differential pulse code modulation (DPCM) and itsvariants such as the adaptive DPCM (ADPCM).

A problem with pel-based prediction is that the residuals still have ahigh energy. It is due to the fact that only a small number ofneighboring pixels are used in the prediction process. Therefore thereis room to improve the coding efficiency of pel-based predictionschemes.

SUMMARY OF THE INVENTION

Embodiments of the invention describe a system to encode digital imageand video data in a lossless manner to achieve compression. The systemis hybrid—meaning that it has a part that compresses the said data in alossy manner and a part that compresses the residual data in a losslessfashion. For the lossy part, the system uses the adaptive block sizediscrete cosine transform (ABSDCT) algorithm. The ABSDCT systemcompresses the said data yielding a high visual quality and compressionratio. A residual image is obtained as the difference between theoriginal and the decompressed one from the ABSDCT system. This residualis encoded losslessly using Golomb-Rice coding algorithm. Due tovisually based adaptive block size and quantization of the DCTcoefficients, the residuals have a very low energy, thus yielding goodoverall lossless compression ratios.

The ABSDCT system achieves a high compression ratio at cinema quality.Since it is block-based, it removes pixel correlation much better thanany pel-based scheme. Therefore it is used as a predictor in thelossless system to be described here. In conjunction with this predictora lossless encoding system is added to form a hybrid losslesscompression system. It should be noted that the system is capable ofcompressing still images as well as motion images. If it is a stillimage, only the ABSDCT compressed data and entropy encoded residual dataare used as the compressed output. For motion sequences, a decision ismade whether to use intra-frame or inter-frame compression. For example,if f(t) represents an image frame at time instant t, F(t) and F(t+Δt)denote the DCTs of the image frames at time instants t and t+Δt,respectively. Note that Δt corresponds to the time interval between twoconsecutive frames.

The invention is embodied in an apparatus and method for compressingdata that allows one to be able to recover the data in the exact mannerin which the data was encoded. Embodiments comprise a system thatperforms intraframe coding, interframe coding, or a hybrid of the two.The system is a quality-based system that utilizes adaptively sizedblocks and sub-blocks of Discrete Cosine Transform coefficient data. Ablock of pixel data is input to an encoder. The encoder comprises ablock size assignment (BSA) element, which segments the input block ofpixels for processing. The block size assignment is based on thevariances of the input block and further subdivided blocks. In general,areas with larger variances are subdivided into smaller blocks, andareas with smaller variances are not be subdivided, provided the blockand sub-block mean values fall into different predetermined ranges.Thus, first the variance threshold of a block is modified from itsnominal value depending on its mean value, and then the variance of theblock is compared with this threshold, and if the variance is greaterthan the threshold, then the block is subdivided.

The block size assignment is provided to a transform element, whichtransforms the pixel data into frequency domain data. The transform isperformed only on the block and sub-blocks selected through block sizeassignment. For AC elements, the transform data then undergoes scalingthrough quantization and serialization. Quantization of the transformdata is quantized based on an image quality metric, such as a scalefactor that adjusts with respect to contrast, coefficient count, ratedistortion, density of the block size assignments, and/or past scalefactors. Serialization, such as zigzag scanning, is based on creatingthe longest possible run lengths of the same value. The stream of datais then coded by a variable length coder in preparation fortransmission. Coding may be Huffman coding, or coding may be based on anexponential distribution, such as Golomb-Rice encoding.

The use of a hybrid compression system such as the ABSDCT, acts like agood predictor of pixel or DCT values. Therefore it results in a higherlossless compression ratio than the systems using pel-based prediction.The lossy portion provides digital cinema quality results—that is, thecompression results in a file that is visually lossless. For thelossless portion, unlike Huffman codes, Golomb-Rice coding does notrequire any a priori code generation. Therefore, it does not require anextensive codebook to be stored as in Huffman coding. This results in anefficient use of the chip real estate. Hence, the chip size is reducedin hardware implementation. Further, the Golomb-Rice encoding is muchsimpler to implement than Huffman coding. Also, Golomb-Rice codingachieves a higher coding efficiency than the Huffman coding as the DCTcoefficients or residuals have an exponential distribution naturally.Further, as the lossy portion of the compression system uses visuallysignificant information in the block sub-division, context modeling isinherent in the residual encoding. This is important in that no extrastorage registers are needed in gathering contextual data for theresidual encoding. Since no motion estimation is used, the system isvery simple to implement also.

An apparatus and method for losslessly compressing and encoding signalsrepresenting image information is claimed. Signals representing imageinformation are compressed to create a compressed version of the image.The compressed version of the image is quantized, thereby creating alossy version of the image. The compressed version of the image is alsoserialized to create a serialized quantized compressed version of theimage. This version is then decompressed, and the differences betweenthe original image and the decompressed version are determined, therebycreating a residual version of the image. The lossy version of the imageand the residual version of the image may be output separately orcombined, wherein the combination of the decompressed lossy version ofthe image and the residual version of the image is substantially thesame as the original image.

A method of losslessly compressing and encoding signals representingimage information is claimed. A lossy compressed data file and aresidual compressed data file are generated. When the lossy compresseddata file and the residual compressed data file are combined, a losslessdata file that is substantially identical to the original data file iscreated.

Accordingly, it is an aspect of an embodiment to provide an apparatusand method to efficiently provide lossless compression.

It is another aspect of an embodiment that compresses digital image andaudio information losslessly in a manner conducive to mastering andarchival purposes.

It is another aspect of an embodiment to provide a lossless compressionsystem on an interframe basis.

It is another aspect of an embodiment to provide a lossless compressionsystem on an intraframe basis.

BRIEF DESCRIPTION OF THE DRAWINGS

The features and advantages of the present invention will become moreapparent from the detailed description set forth below when taken inconjunction with the drawings in which like reference charactersidentify correspondingly throughout and wherein:

FIG. 1 is a block diagram of an encoder portion of an image compressionand processing system;

FIG. 2 is a block diagram of a decoder portion of an image compressionand processing system;

FIG. 3 is a flow diagram illustrating the processing steps involved invariance based block size assignment;

FIG. 4 a illustrates an exponential distribution of the Y componentrun-lengths in a DCT coefficient matrix;

FIG. 4 b illustrates an exponential distribution of the C_(b) componentrun-lengths in a DCT coefficient matrix;

FIG. 4 c illustrates an exponential distribution of the C_(r) componentrun-lengths in a DCT coefficient matrix;

FIG. 5 a illustrates an exponential distribution of the amplitude sizeof the Y component or amplitude size of the Y component in a DCTcoefficient matrix;

FIG. 5 b illustrates an exponential distribution of the amplitude sizeof the C_(b) component or amplitude size of the C_(b) component in a DCTcoefficient matrix;

FIG. 5 c illustrates an exponential distribution of the amplitude sizeof the C_(r) component or amplitude size of the C_(r) component in a DCTcoefficient matrix;

FIG. 6 illustrates a Golomb-Rice encoding process;

FIG. 7 illustrates an apparatus for Golomb-Rice encoding;

FIG. 8 illustrates a process of encoding DC component values;

FIG. 9 illustrates an apparatus for lossless compression; and

FIG. 10 illustrates a method of hybrid lossless compression.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In order to facilitate digital transmission of digital signals and enjoythe corresponding benefits, it is generally necessary to employ someform of signal compression. While achieving high compression in aresulting image, it is also important that high quality of the image bemaintained. Furthermore, computational efficiency is desired for compacthardware implementation, which is important in many applications.

Before one embodiment of the invention is explained in detail, it is tobe understood that the invention is not limited in its application tothe details of the construction and the arrangement of the componentsset forth in the following description or illustrated in the drawings.The invention is capable of other embodiments and are carried out invarious ways. Also, it is understood that the phraseology andterminology used herein is for purpose of description and should not beregarded as limiting.

Image compression employed in an aspect of an embodiment is based ondiscrete cosine transform (DCT) techniques, such as that disclosed inco-pending U.S. patent application “Contrast Sensitive Variance BasedAdaptive Block Size DCT Image Compression”, Ser. No. 09/436,085 filed onNov. 8, 1999, assigned to the assignee of the present application andincorporated herein by reference. Image Compression and Decompressionsystems utilizing the DCT are described in co-pending U.S. patentapplication “Quality Based Image Compression”, Ser. No. 09/494,192,filed on Jan. 28, 2000, assigned to the assignee of the presentapplication and incorporated herein by reference. Generally, an image tobe processed in the digital domain is composed of pixel data dividedinto an array of non-overlapping blocks, N×N in size. A two-dimensionalDCT may be performed on each block. The two-dimensional DCT is definedby the following relationship:

${{X\left( {k,l} \right)} = {\frac{{\alpha(k)}{\beta(l)}}{\sqrt{N*M}}{\sum\limits_{m = 0}^{N - 1}{\sum\limits_{n = 0}^{N - 1}{{x\left( {m,n} \right)}{\cos\left\lbrack \frac{\left( {{2m} + 1} \right)\pi\; k}{2N} \right\rbrack}{\cos\left\lbrack \frac{\left( {{2n} + 1} \right)\pi\; l}{2N} \right\rbrack}}}}}},\mspace{79mu}{0 \leq k},{l \leq {N - 1}}$where

${\alpha(k)},{{\beta(k)} = \left\{ \begin{matrix}{1,} & {{{if}\mspace{14mu} k} = 0} \\{\sqrt{2},} & {{{{if}\mspace{14mu} k} \neq 0},}\end{matrix} \right.}$and

-   -   x(m,n) is the pixel at location (m,n) within an N×M block, and    -   X(k,l) is the corresponding DCT coefficient.

Since pixel values are non-negative, the DCT component X(0,0) is alwayspositive and usually has the most energy. In fact, for typical images,most of the transform energy is concentrated around the componentX(0,0). This energy compaction property is what makes the DCT techniquesuch an attractive compression method.

The image compression technique utilizes contrast adaptive coding toachieve further bit rate reduction. It has been observed that mostnatural images are made up of relatively slow varying flat areas, andbusy areas such as object boundaries and high-contrast texture. Contrastadaptive coding schemes take advantage of this factor by assigning morebits to the busy areas and less bits to the less busy areas.

Contrast adaptive methods utilize intraframe coding (spatial processing)instead of interframe coding (spatio-temporal processing). Interframecoding inherently requires multiple frame buffers in addition to morecomplex processing circuits. In many applications, reduced complexity isneeded for actual implementation. Intraframe coding is also useful in asituation that can make a spatio-temporal coding scheme break down andperform poorly. For example, 24 frame per second movies can fall intothis category since the integration time, due to the mechanical shutter,is relatively short. The short integration time allows a higher degreeof temporal aliasing. The assumption of frame-to-frame correlationbreaks down for rapid motion as it becomes jerky. Intraframe coding isalso easier to standardize when both 50 Hz and 60 Hz power linefrequencies are involved. Television currently transmits signals ateither 50 Hz or 60 Hz. The use of an intraframe scheme, being a digitalapproach, can adapt to both 50 Hz and 60 Hz operation, or even to 24frame per second movies by trading off frame rate versus spatialresolution.

For image processing purposes, the DCT operation is performed on pixeldata that is divided into an array of non-overlapping blocks. Note thatalthough block sizes are discussed herein as being N×N in size, it isenvisioned that various block sizes may be used. For example, a N×Mblock size may be utilized where both N and M are integers with M beingeither greater than or less than N. Another important aspect is that theblock is divisible into at least one level of sub-blocks, such asN/i×N/i, N/i×N/j, N/i×M/j, and etc. where i and j are integers.Furthermore, the exemplary block size as discussed herein is a 16×16pixel block with corresponding block and sub-blocks of DCT coefficients.It is further envisioned that various other integers such as both evenor odd integer values may be used, e.g. 9×9.

FIGS. 1 and 2 illustrate an image processing system 100 incorporatingthe concept of configurable serializer. The image processing system 100comprises an encoder 104 that compresses a received video signal. Thecompressed signal is transmitted using a transmission channel or aphysical medium 108, and received by a decoder 112. The decoder 112decodes the received encoded data into image samples, which may then beexhibited.

In general, an image is divided into blocks of pixels for processing. Acolor signal may be converted from RGB space to YC₁C₂ space using a RGBto YC₁C₂ converter 116, where Y is the luminance, or brightness,component, and C₁ and C₂ are the chrominance, or color, components.Because of the low spatial sensitivity of the eye to color, many systemssub-sample the C₁ and C₂ components by a factor of four in thehorizontal and vertical directions. However, the sub-sampling is notnecessary. A full resolution image, known as 4:4:4 format, may be eithervery useful or necessary in some applications such as those referred toas covering “digital cinema.” Two possible YC₁C₂ representations are,the YIQ representation and the YUV representation, both of which arewell known in the art. It is also possible to employ a variation of theYUV representation known as YCbCr. This may be further broken into oddand even components. Accordingly, in an embodiment the representationY-even, Y-odd, Cb-even, Cb-odd, Cr-even, Cr-odd is used.

In a preferred embodiment, each of the even and odd Y, Cb, and Crcomponents is processed without sub-sampling. Thus, an input of each ofthe six components of a 16×16 block of pixels is provided to the encoder104. For illustration purposes, the encoder 104 for the Y-even componentis illustrated. Similar encoders are used for the Y-odd component, andeven and odd Cb and Cr components. The encoder 104 comprises a blocksize assignment element 120, which performs block size assignment inpreparation for video compression. The block size assignment element 120determines the block decomposition of the 16×16 block based on theperceptual characteristics of the image in the block. Block sizeassignment subdivides each 16×16 block into smaller blocks, such as 8×8,4×4, and 2×2, in a quad-tree fashion depending on the activity within a16×16 block. The block size assignment element 120 generates a quad-treedata, called the PQR data, whose length can be between 1 and 21 bits.Thus, if block size assignment determines that a 16×16 block is to bedivided, the R bit of the PQR data is set and is followed by fouradditional bits of Q data corresponding to the four divided 8×8 blocks.If block size assignment determines that any of the 8×8 blocks is to besubdivided, then four additional bits of P data for each 8×8 blocksubdivided are added.

Referring now to FIG. 3, a flow diagram showing details of the operationof the block size assignment element 120 is provided. The variance of ablock is used as a metric in the decision to subdivide a block.Beginning at step 202, a 16×16 block of pixels is read. At step 204, thevariance, v16, of the 16×16 block is computed. The variance is computedas follows:

${var} = {{\frac{1}{N^{2}}{\sum\limits_{i = 0}^{N - 1}{\sum\limits_{j = 0}^{N - 1}x_{i,j}^{2}}}} - \left( {\frac{1}{N^{2}}{\sum\limits_{i = 0}^{N - 1}{\sum\limits_{j = 0}^{N - 1}x_{i,j}}}} \right)^{2}}$where N=16, and x_(i,j) is the pixel in the i^(th) row, i^(th) columnwithin the N×N block. At step 206, first the variance threshold T16 ismodified to provide a new threshold T′16 if the mean value of the blockis between two predetermined values, then the block variance is comparedagainst the new threshold, T′16.

If the variance v16 is not greater than the threshold T16, then at step208, the starting address of the 16×16 block is written into temporarystorage, and the R bit of the PQR data is set to 0 to indicate that the16×16 block is not subdivided. The algorithm then reads the next 16×16block of pixels. If the variance v16 is greater than the threshold T16,then at step 210, the R bit of the PQR data is set to 1 to indicate thatthe 16×16 block is to be subdivided into four 8×8 blocks.

The four 8×8 blocks, 1=1:4, are considered sequentially for furthersubdivision, as shown in step 212. For each 8×8 block, the variance, v8_(i), is computed, at step 214. At step 216, first the variancethreshold T8 is modified to provide a new threshold T′8 if the meanvalue of the block is between two predetermined values, then the blockvariance is compared to this new threshold.

If the variance v8 _(i) is not greater than the threshold T8, then atstep 218, the starting address of the 8×8 block is written intotemporary storage, and the corresponding Q bit, Q_(i), is set to 0. Thenext 8×8 block is then processed. If the variance v8 _(i) is greaterthan the threshold T8, then at step 220, the corresponding Q bit, Q_(i),is set to 1 to indicate that the 8×8 block is to be subdivided into four4×4 blocks.

The four 4×4 blocks, j_(i)=1:4, are considered sequentially for furthersubdivision, as shown in step 222. For each 4×4 block, the variance, v4_(ij), is computed, at step 224. At step 226, first the variancethreshold T4 is modified to provide a new threshold T′4 if the meanvalue of the block is between two predetermined values, then the blockvariance is compared to this new threshold.

If the variance v4 _(ij) is not greater than the threshold T4, then atstep 228, the address of the 4×4 block is written, and the correspondingP bit, P_(ij), is set to 0. The next 4×4 block is then processed. If thevariance v4 _(ij) is greater than the threshold T4, then at step 230,the corresponding P bit, P_(ij), is set to 1 to indicate that the 4×4block is to be subdivided into four 2×2 blocks. In addition, the addressof the 4 2×2 blocks are written into temporary storage.

The thresholds T16, T8, and T4 may be predetermined constants. This isknown as the hard decision. Alternatively, an adaptive or soft decisionmay be implemented. For example, the soft decision varies the thresholdsfor the variances depending on the mean pixel value of the 2N×2N blocks,where N can be 8, 4, or 2. Thus, functions of the mean pixel values, maybe used as the thresholds.

For purposes of illustration, consider the following example. Let thepredetermined variance thresholds for the Y component be 50, 1100, and880 for the 16×16, 8×8, and 4×4 blocks, respectively. In other words,T16=50, T8=1100, and T4=880. Let the range of mean values be 80 and 100.Suppose the computed variance for the 16×16 block is 60. Since 60 isgreater than T16, and the mean value 90 is between 80 and 100, the 16×16block is subdivided into four 8×8 sub-blocks. Suppose the computedvariances for the 8×8 blocks are 1180, 935, 980, and 1210. Since two ofthe 8×8 blocks have variances that exceed T8, these two blocks arefurther subdivided to produce a total of eight 4×4 sub-blocks. Finally,suppose the variances of the eight 4×4 blocks are 620, 630, 670, 610,590, 525, 930, and 690, with corresponding means values 90, 120, 110,115. Since the mean value of the first 4×4 block falls in the range (80,100), its threshold will be lowered to T′4=200 which is less than 880.So, this 4×4 block will be subdivided as well as the seventh 4×4 block.

Note that a similar procedure is used to assign block sizes for theluminance component Y-odd and the color components, C_(b) and C_(r). Thecolor components may be decimated horizontally, vertically, or both.

Additionally, note that although block size assignment has beendescribed as a top down approach, in which the largest block (16×16 inthe present example) is evaluated first, a bottom up approach mayinstead be used. The bottom up approach will evaluate the smallestblocks (2×2 in the present example) first.

Referring back to FIG. 1, the PQR data, along with the addresses of theselected blocks, are provided to a DCT element 124. The DCT element 124uses the PQR data to perform discrete cosine transforms of theappropriate sizes on the selected blocks. Only the selected blocks needto undergo DCT processing.

The image processing system 100 also comprises DQT element 128 forreducing the redundancy among the DC coefficients of the DCTs. A DCcoefficient is encountered at the top left corner of each DCT block. TheDC coefficients are, in general, large compared to the AC coefficients.The discrepancy in sizes makes it difficult to design an efficientvariable length coder. Accordingly, it is advantageous to reduce theredundancy among the DC coefficients.

The DQT element 128 performs 2-D DCTs on the DC coefficients, taken 2×2at a time. Starting with 2×2 blocks within 4×4 blocks, a 2-D DCT isperformed on the four DC coefficients. This 2×2 DCT is called thedifferential quad-tree transform, or DQT, of the four DC coefficients.Next, the DC coefficient of the DQT along with the three neighboring DCcoefficients within an 8×8 block are used to compute the next level DQT.Finally, the DC coefficients of the four 8×8 blocks within a 16×16 blockare used to compute the DQT. Thus, in a 16×16 block, there is one trueDC coefficient and the rest are AC coefficients corresponding to the DCTand DQT.

The transform coefficients (both DCT and DQT) are provided to aquantizer for quantization. In a preferred embodiment, the DCTcoefficients are quantized using frequency weighting masks (FWMs) and aquantization scale factor. A FWM is a table of frequency weights of thesame dimensions as the block of input DCT coefficients. The frequencyweights apply different weights to the different DCT coefficients. Theweights are designed to emphasize the input samples having frequencycontent that the human visual or optical system is more sensitive to,and to de-emphasize samples having frequency content that the visual oroptical system is less sensitive to. The weights may also be designedbased on factors such as viewing distances, etc.

The weights are selected based on empirical data. A method for designingthe weighting masks for 8×8 DCT coefficients is disclosed in ISO/IECJTC1 CD 10918, “Digital compression and encoding of continuous-tonestill images—part 1: Requirements and guidelines,” InternationalStandards Organization, 1994, which is incorporated herein by reference.In general, two FWMs are designed, one for the luminance component andone for the chrominance components. The FWM tables for block sizes 2×2,4×4 are obtained by decimation and 16×16 by interpolation of that forthe 8×8 block. The scale factor controls the quality and bit rate of thequantized coefficients.

Thus, each DCT coefficient is quantized according to the relationship:

${D\; C\;{T_{q}\left( {i,j} \right)}} = \left\lfloor {\frac{8*D\; C\;{T\left( {i,j} \right)}}{{{fwm}\left( {i,j} \right)}*q} \pm \frac{1}{2}} \right\rfloor$where DCT(i,j) is the input DCT coefficient, fwm(i,j) is thefrequency-weighting mask, q is the scale factor, and DCTq(i,j) is thequantized coefficient. Note that depending on the sign of the DCTcoefficient, the first term inside the braces is rounded up or down. TheDQT coefficients are also quantized using a suitable weighting mask.However, multiple tables or masks can be used, and applied to each ofthe Y, Cb, and Cr components.

AC values are then separated 130 from DC values and processedseparately. For DC elements, a first DC component value of each slice isencoded. Each subsequent DC component value of each slice is thenrepresented as the difference between it and the DC component valuepreceding it, and encoded 134. For lossless encoding, the initial DCcomponent value of each slice and the differences are encoded 138 usingGolomb-Rice, as described with respect to FIGS. 6 and 8. Use ofGolomb-Rice encoding for the differences between successive DC componentvalues is advantageous in that the differentials of the DC componentvalues tend to have a two-sided exponential distribution. The data maythen be temporarily stored using a buffer 142, and then transferred ortransmitted to the decoder 112 through the transmission channel 108.

FIG. 8 illustrates a process of encoding DC component values. Theprocess is equally applicable for still image, video image (such as, butnot limited to, motion pictures or high-definition television) andaudio. For a given slice of data 804, a first DC component value of theslice is retrieved 808. The first DC component value is then coded 812.Unlike AC component values, the DC component values need not bequantized. In an embodiment, a single DC value for a 16×16 block is usedregardless of the block size assignment breakdown. It is contemplatedthat any fixed sized block, such as 8×8 or 4×4, or any variable blocksize as defined by the block size assignment, may be used. The second,or next, DC component value of a given slice is then retrieved 816. Thesecond DC component value is then compared with the first DC componentvalue, and the difference, or residual, is encoded 820. Thus, the secondDC component value need only be represented as the difference between itand the first value. This process is repeated for each DC componentvalue of a slice. Thus, an inquiry 824 is made as to whether the end ofthe slice (last block and therefore last DC value) is reached. If not828, the next DC value of the slice is retrieved 816, and the processrepeats. If so 832, the next slice is retrieved 804, and the processrepeats until all of the slices of a frame, and all of the frames of thefile are processed.

An objective of lossless encoding of DC component values is to generateresidual values that tend to have a low variance. In using DCTs, the DCcoefficient component value contributes the maximum pixel energy.Therefore, by not quantizing the DC component values, the variance ofthe residuals is reduced.

For AC elements, the block of data and frequency weighting masks arethen scaled by a quantizer 146, or a scale factor element. Quantizationof the DCT coefficients reduces a large number of them to zero whichresults in compression. In a preferred embodiment, there are 32 scalefactors corresponding to average bit rates. Unlike other compressionmethods such as MPEG2, the average bit rate is controlled based on thequality of the processed image, instead of target bit rate and bufferstatus.

To increase compression further, the quantized coefficients are providedto a scan serializer 150. The serializer 150 scans the blocks ofquantized coefficients to produce a serialized stream of quantizedcoefficients. Zigzag scans, column scanning, or row scanning may beemployed. A number of different zigzag scanning patterns, as well aspatterns other than zigzag may also be chosen. A preferred techniqueemploys 8×8 block sizes for the zigzag scanning. A zigzag scanning ofthe quantized coefficients improves the chances of encountering a largerun of zero values. This zero run inherently has a decreasingprobability, and may be efficiently encoded using Huffman codes.

The stream of serialized, quantized AC coefficients is provided to avariable length coder 154. The AC component values may be encoded eitherusing Huffman encoding or Golomb-Rice encoding. For DC component values,Golomb-Rice encoding is utilized. A run-length coder separates thecoefficients between the zero from the non-zero coefficients, and isdescribed in detail with respect to FIG. 6. In an embodiment,Golomb-Rice coding is utilized. Golomb-Rice encoding is efficient incoding non-negative integers with an exponential distribution. UsingGolomb codes is more optimal for compression in providing shorter lengthcodes for exponentially distributed variables.

In Golomb encoding run-lengths, Golomb codes are parameterized by anon-negative integer m. For example, given a parameter m, the Golombcoding of a positive integer n is represented by the quotient of n/m inunary code followed by the remainder represented by a modified binarycode, which is └ log₂ m┘ bits long if the remainder is less than orequal to 2^(┌ log) ² ^(m┐)−m, otherwise, ┌ log₂ m┐ bits long.Golomb-Rice coding is a special case of Golomb coding where theparameter m is expressed as m=2^(k). In such a case the quotient of nlmis obtained by shifting the binary representation of the integer n tothe right by k bits, and the remainder of n/m is expressed by the leastk bits of n. Thus, the Golomb-Rice code is the concatenation of the two.Golomb-Rice coding can be used to encode both positive and negativeintegers with a two-sided geometric (exponential) distribution as givenbyp _(α)(x)=cα ^(|x|)  (1)

In (1), α is a parameter that characterizes the decay of the probabilityof x, and c is a normalization constant. Since p_(α)(x) is monotonic, itcan be seen that a sequence of integer values should satisfyp _(α)(x _(i)=0)≧p _(α)(x _(i)=−1)≧p _(α)(x _(i)=+1)≧p _(α)(x_(i)=−2)≧  (2)

As illustrated in FIGS. 4 a, 4 b, 4 c and 5 a, 5 b, 5 c, both thezero-runs and amplitudes in a quantized DCT coefficient matrix haveexponential distributions. The distributions illustrated in thesefigures are based on data from real images. FIG. 4 a illustrates the Ycomponent distribution 400 of zero run-lengths versus relativefrequency. Similarly, FIGS. 4 b and 4 c illustrates the Cb and Crcomponent distribution, of zero run-lengths versus relative frequency410 and 420, respectively. FIG. 5 a illustrates the Y componentdistribution 500 of amplitude size versus relative frequency. Similarly,FIGS. 5 b and 5 c illustrates the Cb and Cr component distribution ofamplitude size versus relative frequency, 510 and 520, respectively.Note that in FIGS. 5 a, 5 b, and 5 c the plots represent thedistribution of the size of the DCT coefficients. Each size represents arange of coefficient values. For example, a size value of four has therange {−15, −14, . . . −8, 8, . . . , 14, 15}, a total of 16 values.Similarly, a size value of ten has the range {−1023, −1022, . . . ,−512, 512, . . . , 1022, 1023}, a total of 1024 values. It is seen fromFIGS. 4 a, 4 b, 4 c, 5 a, 5 b and 5 c that both run-lengths andamplitude size have exponential distributions. The actual distributionof the amplitudes can be shown to fit the following equation (3):

$\begin{matrix}{{{p\left( X_{k,l} \right)} = {\frac{\sqrt{2\lambda}}{2}\exp\left\{ {{- \sqrt{2\;\lambda}}{X_{k,l}}} \right\}}},k,{l \neq 0}} & (3)\end{matrix}$In (3), X_(k,l) represents the DCT coefficient corresponding tofrequency k and l in the vertical and horizontal dimensions,respectively, and the mean

${\mu_{x} = \frac{1}{\sqrt{2\lambda}}},$variance

$\sigma_{x}^{2} = {\frac{1}{2\lambda}.}$Accordingly, the use of Golomb-Rice coding in the manner described ismore optimal in processing data in DCTs.

Although the following is described with respect to compression of imagedata, the embodiments are equally applicable to embodiments compressingaudio data. In compressing image data, the image or video signal may be,for example, either in RGB, or YIQ, or YUV, or Y Cb Cr components withlinear or log encoded pixel values.

FIG. 6 illustrates the process 600 of encoding zero and non-zerocoefficients. As the DCT matrix is scanned, the zero and non-zerocoefficients are processed separately and separated 604. For zero data,the length of zero run is determined 608. Note that run-lengths arepositive integers. For example, if the run-length is found to be n, thena Golomb parameter m is determined 612. In an embodiment, the Golombparameter is determined as a function of the run length. In anotherembodiment, the Golomb parameter (m) is determined by the followingequation (4)m=┌ log ₂ n┐  (4)

Optionally, the length of run-lengths and associated Golomb parametersare counted 616 by a counter or register. To encode the run length ofzeros n, a quotient is encoded 620. In an embodiment, the quotient isdetermined as a function of the run length of zeros and the Golombparameter. In another embodiment, the quotient (Q) is determined by thefollowing equation (5):Q=└n/2^(m)┘  (5)In an embodiment, the quotient Q is encoded in unary code, whichrequires Q+1 bits. Next, a remainder is encoded 624. In an embodiment,the remainder is encoded as a function of the run length and thequotient. In another embodiment, the remainder (R) is determined usingthe following equation (6):R=n−2^(m) Q  (6)In an embodiment, the remainder R is encoded in an m-bit binary code.After, the quotient Q and the remainder R are determined, the codes forQ and R are concatenated 628 to represent an overall code for the runlength of zeros n.

Nonzero coefficients are also encoded using Golomb-Rice. Since thecoefficient amplitude can be positive or negative, it is necessary touse a sign bit and to encode the absolute value of a given amplitude.Given the amplitude of the non-zero coefficient being x, the amplitudemay be expressed as a function of the absolute value of the amplitudeand the sign. Accordingly, the amplitude may be expressed as y using thefollowing equation (7):

$\begin{matrix}{y = \left\{ \begin{matrix}{{2x},} & {{{if}\mspace{14mu} x} \geq 0} \\{{{2{x}} - 1},} & {otherwise}\end{matrix} \right.} & (7)\end{matrix}$

Accordingly, the value of a non-zero coefficient is optionally countedby a counter, or register, 632. It is then determined 636 if theamplitude is greater than or equal to zero. If it is, the value isencoded 640 as twice the given value. If not, the value is encoded 644as one less than twice the absolute value. It is contemplated that othermapping schemes may also be employed. The key is that an extra bit todistinguish the sign of the value is not needed.

Encoding amplitudes as expressed by equation (7) results in thatpositive values of x being even integers and negative values become oddintegers. Further, this mapping preserves the probability assignment ofx as in (2). An advantage of encoding as illustrated in equation (7)allows one to avoid using a sign bit to represent positive and negativenumbers. After the mapping is done, y is encoded in the same manner aswas done for the zero-run. The procedure is continued until allcoefficients have been scanned in the current block.

It is important to recognize that although embodiments of the inventionare determine values of coefficients and run lengths as a function ofequations (1)-(7), the exact equations (1)-(7) need not be used. It isthe exploitation of the exponential distribution of Golomb-Rice encodingand of DCT coefficients that allows for more efficient compression ofimage and audio data.

Since a zero-run after encoding is not distinguishable from a non-zeroamplitude, it may be necessary to use a special prefix code of fixedlength to mark the occurrence of the first zero-run. It is common toencounter all zeros in a block after a non-zero amplitude has beenencountered. In such cases, it may be more efficient to use a codereferring to end-of-block (EOB) code rather than Golomb-Rice code. TheEOB code is again, optionally, a special fixed length code.

According to equation (1) or (3), the probability distribution of theamplitude or run-length in the DCT coefficient matrix is parameterizedby α or λ. The implication is that the coding efficiency may be improvedif the context under which a particular DCT coefficient block arises. Anappropriate Golomb-Rice parameter to encode the quantity of interest maythen be used. In an embodiment, counters or registers are used for eachrun-length and amplitude size value to compute the respective cumulativevalues and the corresponding number of times that such a value occurs.For example, if the register to store the cumulative value and number ofelements accumulated are R_(rl) and N_(rl), respectively, the followingequation (6) may be used as the Rice-Golomb parameter to encode therun-length:

$\begin{matrix}\left\lceil {\log_{2}\frac{R_{rl}}{N_{rl}}} \right\rceil & (6)\end{matrix}$A similar procedure may be used for the amplitude.

The residual pixels are generated by first decompressing the compresseddata using the ABSDCT decoder, and then subtracting it from the originaldata. Smaller the residual dynamic range, higher is the compression.Since the compression is block-based, the residuals are also generatedon a block basis. It is a well-known fact that the residual pixels havea two-sided exponential distribution, usually centered at zero. SinceGolomb-Rice codes are more optimal for such data, a Golomb-Rice codingprocedure is used to compress the residual data. However, no specialcodes are necessary, as there are no run-lengths to be encoded. Further,there is no need for an EOB code. Thus, the compressed data consists oftwo components. One is the component from the lossy compressor and theother is from the lossless compressor.

When encoding motion sequences one can benefit from exploiting thetemporal correlation as well. In order to exploit fully the temporalcorrelation, pixel displacement is first estimated due to motion, andthen a motion compensated prediction is performed to obtain residualpixels. As ABSDCT performs adaptive block size encoding, block sizeinformation may be alternatively used as a measure of displacement dueto motion. As a further simplification, no scene change detection isused. Instead, for each frame in a sequence first the intra-framecompressed data is obtained. Then the difference between the current andprevious frame DCTs, are generated on a block-by-block basis. This isdescribed further by U.S. patent application Ser. No. 09/877,578, filedJun. 7, 2001, which is incorporated by reference herein. These residualsin the DCT domain are encoded using both Huffman and Golomb-Rice codingprocedures. The final compressed output then corresponds to the one thatuses the minimum number of bits per frame.

The lossless compression algorithm is a hybrid scheme that lends itselfwell to repurposing and transcoding by stripping off the losslessportion. Thus, using ABSDCT maximizes pixel correlation in the spatialdomain resulting in residual pixels having a lower variance than thoseused in prediction schemes. The lossy portion of the overall systempermits the user to achieve the necessary quality and data rates fordistribution purposes without having to resort to interframe processing,thereby eliminating related motion artifacts and significantly reducingimplementation complexities. This is especially significant in programsbeing distributed for digital cinema applications, since the lossyportion of the compressed material requires a higher level of quality inits distribution.

FIG. 9 illustrates a hybrid lossless encoding apparatus 900. FIG. 10illustrates a process that may be run on such an apparatus. Originaldigital information 904 resides on a storage device, or is transmitted.Many of the elements in FIG. 9 are described in more detail with respectto FIGS. 1 and 2. Frames of data are sent to a compressor 908,comprising a block size assignment element 912, a DCT/DQT transformelement 916, and a quantizer 920. After the DCT/DQT is performed on thedata, the data is converted into the frequency domain. In one output922, the data is quantized by the quantizer 920 and transferred to anoutput 924, which may comprises storage and/or switching. All of theabove described processing is on an intraframe basis.

The quantizer output is also transferred to a decompressor 928. Thedecompressor 928 undoes the process of the compressor, going through aninverse quantizer 932, and an IDQT/IDCT 936, along with knowledge of thePQR data as defined by the BSA. The result of the decompressor 940 isfed to a subtractor 944 where it is compared with the original.Subtractor 944 may be a variety of elements, such as a differencer, thatcomputes residual pixels as the difference between the uncompressed andthe compressed and decompressed pixels for each block. Additionally, thedifferencer may obtain the residuals in the DCT domain for each blockfor conditional interframe coding. The result 948 of the comparisonbetween the decompressed data and the original is the pixel residualfile. That is, the result 948 is indicative of the losses experienced bythe data being compressed and uncompressed. Thus, the original data isequal to the output 922 in combination with the result 948. The result948 is then serialized 952 and Huffman and/or Golomb Rice encoder 956,and provided as a second output 960. The Huffman and/or Golomb Riceencoder 956 may be a type of entropy encoder that encodes residualspixels using Golomb Rice coding. A decision is made whether to useintraframe or interframe based on the minimum bits for each frame. Useof Golomb Rice coding of the residuals leads to higher overallcompression ratios of the system.

Thus, the lossless, interframe output is a combination, or hybrid of twosets of data, the lossy, high quality image file (922, or A) and theresidual file (960 or C).

Interframe coding may also be utilized. The output of the quantizer istransferred to a store 964, along with knowledge of the BSA. Upongathering of a frame's worth of data, a subtractor 966 compares thestored frame 964 with a next frame 968. The difference results in a DCTresidual 970, which is then serialized and/or Golomb-Rice encoded 974,providing a third output data set 976 to the output 924. Thus, aninterframe lossless file of B and C is compiled. Thus, eithercombination (A+C or B+C) may be chosen based on size considerations.Further, a purely intraframe output may be desirable for editingpurposes.

Referring back to FIG. 1, the compressed image signal generated by theencoder 104 may be temporarily stored using a buffer 142, and thentransmitted to the decoder 112 using the transmission channel 108. Thetransmission channel 108 may be a physical medium, such as a magnetic oroptical storage device, or a wire-line or wireless conveyance process orapparatus. The PQR data, which contains the block size assignmentinformation, is also provided to the decoder 112 (FIG. 2). The decoder112 comprises a buffer 164 and a variable length decoder 168, whichdecodes the run-length values and the non-zero values. The variablelength decoder 168 operates in a similar but opposite manner as thatdescribed in FIG. 6.

The output of the variable length decoder 168 is provided to an inverseserializer 172 that orders the coefficients according to the scan schemeemployed. For example, if a mixture of zigzag scanning, verticalscanning, and horizontal scanning were used, the inverse serializer 172would appropriately re-order the coefficients with the knowledge of thetype of scanning employed. The inverse serializer 172 receives the PQRdata to assist in proper ordering of the coefficients into a compositecoefficient block.

The composite block is provided to an inverse quantizer 174, for undoingthe processing due to the use of the quantizer scale factor and thefrequency weighting masks.

The coefficient block is then provided to an IDQT element 186, followedby an IDCT element 190, if the Differential Quad-tree transform had beenapplied. Otherwise, the coefficient block is provided directly to theIDCT element 190. The IDQT element 186 and the IDCT element 190 inversetransform the coefficients to produce a block of pixel data. The pixeldata may then have to be interpolated, converted to RGB form, and thenstored for future display.

FIG. 7 illustrates an apparatus for Golomb-Rice encoding 700. Theapparatus in FIG. 7 preferably implements a process as described withrespect to FIG. 6. A determiner 704 determines a run length (n) and aGolomb parameter (m). Optionally, a counter or register 708 is used foreach run-length and amplitude size value to compute the respectivecumulative values and the corresponding number of times that such avalue occurs. An encoder 712 encodes a quotient (Q) as a function of therun length and the Golomb parameter. The encoder 712 also encodes theremainder (R) as a function of the run length, Golomb parameter, andquotient. In an alternate embodiment, encoder 712 also encodes nonzerodata as a function of the non-zero data value and the sign of thenon-zero data value. A concatenator 716 is used to concatenate the Qvalue with the R value.

As examples, the various illustrative logical blocks, flowcharts, andsteps described in connection with the embodiments disclosed herein maybe implemented or performed in hardware or software with anapplication-specific integrated circuit (ASIC), a programmable logicdevice, discrete gate or transistor logic, discrete hardware components,such as, e.g., registers and FIFO, a processor executing a set offirmware instructions, any conventional programmable software and aprocessor, or any combination thereof. The processor may advantageouslybe a microprocessor, but in the alternative, the processor may be anyconventional processor, controller, microcontroller, or state machine.The software could reside in RAM memory, flash memory, ROM memory,registers, hard disk, a removable disk, a CD-ROM, a DVD-ROM or any otherform of storage medium known in the art.

The previous description of the preferred embodiments is provided toenable any person skilled in the art to make or use the presentinvention. The various modifications to these embodiments will bereadily apparent to those skilled in the art, and the generic principlesdefined herein may be applied to other embodiments without the use ofthe inventive faculty. Thus, the present invention is not intended to belimited to the embodiments shown herein but is to be accorded the widestscope consistent with the principles and novel features disclosedherein.

Other features and advantages of the invention are set forth in thefollowing claims.

1. A method for losslessly compressing and encoding signals representingan image, the method comprising: compressing pixel domain signalsrepresenting an image thereby creating a compressed version of theimage; quantizing the compressed version of the image thereby creating alossy version of the image; decompressing the lossy version of the imagethereby creating a decompressed version of the image; determining thedifferences between pixels domain signals representing the image and thepixel domain signals representing the decompressed version of the imagethereby creating residual pixel data; serializing the residual pixeldata thereby creating serialized residual pixel data; performing entropyencoding on serialized residual pixel data thereby creating entropyencoded residual pixel data; and outputting the lossy version of theimage and the entropy encoded residual pixel data.
 2. The method setforth in claim 1, wherein compressing utilizes a combination of discretecosine transform (DCT) and discrete quadtree transform (DQT) techniques.3. The method set forth in claim 1, wherein performing entropy encodingutilizes Golomb-Rice coding techniques.
 4. The method set forth in claim1, wherein serializing the residual pixel data includes using one or anycombination of: zigzag scanning, vertical scanning, and horizontalscanning.
 5. An apparatus for losslessly compressing and encodingsignals representing an image, the method comprising: means forcompressing pixel domain signals representing the image thereby creatinga compressed version of the image; means for quantizing the compressedversion of the image thereby creating a lossy version of the image;means for decompressing the lossy version of the image thereby creatinga decompressed version of the image; means for determining thedifferences between pixel domain signals representing the image andpixel domain signals representing the decompressed version of the imagethereby creating residual pixel data; means for serializing the residualpixel data thereby creating serialized residual pixel data; means forperforming entropy encoding on serialized residual pixel data therebycreating entropy encoded residual pixel data; and means for outputtingthe lossy version of the image and the entropy encoded residual pixeldata.
 6. The apparatus set forth in claim 5, wherein the means forcompressing utilizes a combination of discrete cosine transform (DCT)and discrete quadtree transform (DQT) techniques.
 7. The apparatus setforth in claim 5, wherein the means for serializing the residual pixeldata includes means for using one or any combination of: zigzagscanning, vertical scanning, and horizontal scanning.
 8. An apparatusfor losslessly compressing and encoding signals representing an image,the method comprising: a compressor element configured to performdiscrete cosine transforms (DCTs) and discrete quadtree transforms(DQTs) to pixel data signals representing the image thereby creating acompressed version of the image; a quantizer element coupled to thecompressor element configured to quantize the compressed version of theimage thereby creating a lossy version of the image; a decompressorelement configured to perform inverse DCTs (IDCTs) and inverse DQTs(IDQTs) to the lossy version of the image thereby creating adecompressed version of the image; a determiner element configured todetermine the differences between pixel domain signals representing theimage and pixel domain signals representing the decompressed version ofthe image thereby creating residual pixel data; and a serializer elementconfigured to serialize the residual pixel data thereby creatingserialized residual pixel data; and an entropy encoding elementconfirmed to perform entropy encoding on serialized residual pixel datathereby creating entropy encoded residual pixel data.
 9. The apparatusset forth in claim 8, wherein the serializer element uses one or anycombination of: zigzag scanning, vertical scanning, and horizontalscanning.